/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package PersistanceLayer;

/**
 *
 * @author Julien
 */
public abstract class AbstractDAOFactory {
    public static final int DAO_FACTORY = 0;
    public static final int XML_DAO_FACTORY = 1;

    /**
     * Methode statique permettant de recuperer les Factory
     */
    public static AbstractDAOFactory getFactory(int type){
        switch(type){
            case DAO_FACTORY:
                return DAOFactory.getDAOFactory();
            case XML_DAO_FACTORY:
                return new XMLDAOFactory();
            default:
                return null;
        }
    }

    /**
     * Methode abstraite permettant de retourner un objet Matiere interagissant avec la base de donnees
     */
    public abstract DAO getAnneeDAO();

    /**
     * Methode abstraite permettant de retourner un objet Departement interagissant avec la base de donnees
     */
    public abstract DAO getDepartementDAO();

    /**
     * Methode abstraite permettant de retourner un objet Enseignant interagissant avec la base de donnees
     */
    public abstract DAO getEnseignantDAO();

    /**
     * Methode abstraite permettant de retourner un objet Ecue interagissant avec la base de donnees
     */
    public abstract DAO getEcueDAO();

    /**
     * Methode abstraite permettant de retourner un objet UE interagissant avec la base de donnees
     */
    public abstract DAO getUEDAO();

    /**
     * Methode abstraite permettant de retourner un objet Etudiant intÃ©ragissant avec la base de donnÃ©es
     */
    public abstract DAO getEtudiantDAO();

    /**
     * Methode abstraite permettant de retourner un objet Semestre interagissant avec la base de donnees
     */
    public abstract DAO getSemestreDAO();

    /**
     * Methode abstraite permettant de retourner un objet Note interagissant avec la base de donnees
     */
    public abstract DAO getNoteDAO();

    /**
     * Methode abstraite permettant de retourner un objet PointJury interagissant avec la base de donnees
     */
    public abstract DAO getPointJuryDAO();

    /**
     * Methode abstraite permettant de retourner un objet PointJurySem interagissant avec la base de donnees
     */
    public abstract DAO getPointJurySemDAO();

     /**
     * Methode abstraite permettant de retourner un objet PointJuryUE interagissant avec la base de donnees

     */
    public abstract DAO getPointJuryUE();





}
